package 进阶阶段;

import java.io.File;
import java.io.FileFilter;

public class demo20FileFilter路径过滤器 {
    public static void main(String[] args) {
        File dir = new File("D:\\JAVA\\Poject\\java\\src\\java_code");//自己本地的java_code的绝对路径

        System.out.println("是否存在newDira:"+dir.exists());

//        File[] arr = dir.listFiles(new FileFilter() {//listFiles方法返回值有可能返回null，在用增强for循环的时候要判断数组名不为null才使用增强for循环，解决空指针异常的问题
//            @Override
//            public boolean accept(File pathname) {//路径过滤器，过滤路径的功能，先拿到每一个路径pathname
////                return false;//false表示对应的数组arr里面没有存东西，则下面的for循环打印不出来文件路径
////                return true;//true表示对应的数据arr里面有存东西
////                return pathname.getName().endsWith(".txt");//过滤只含有".txt"的文件
//                return pathname.isFile()&&pathname.getName().endsWith("java")||pathname.isDirectory();//是否为文件&&文件后缀java||是否为文件夹
//            }
//        });
        File[] arr = dir.listFiles( pathname-> pathname.isFile()&&pathname.getName().endsWith("java")||pathname.isDirectory());//lambda函数写法

        if (arr!=null) {//listFiles方法返回值有可能返回null，在用增强for循环的时候要判断数组名不为null才使用增强for循环，解决空指针异常的问题
            for (File file : arr) {
                System.out.println(file);
            }
        }
    }
}
